NexusPi Git Node
firmware_image.py HEAD (592c826d) Text, 1.58 KB
Tff7b72import T7ee787hashlib
Te6edf3ESP_IMAGE_MAGIC Tff7b72= T79c0ff0xE9
Te6edf3ESP_IMAGE_HEADER_SIZE Tff7b72= T79c0ff24
Te6edf3ESP_IMAGE_HASH_APPENDED_OFFSET Tff7b72= T79c0ff23
Te6edf3SHA256_SIZE Tff7b72= T79c0ff32
Te6edf3KISS_FEND Tff7b72= T79c0ff0xC0
Te6edf3KISS_FESC Tff7b72= T79c0ff0xDB
Te6edf3KISS_TFEND Tff7b72= T79c0ff0xDC
Te6edf3KISS_TFESC Tff7b72= T79c0ff0xDD
Te6edf3KISS_CMD_FIRMWARE_HASH Tff7b72= T79c0ff0x58
Tff7b72def Td2a8ffesp_image_sha256Tb4b4b4(Te6edf3imageTb4b4b4: Tffa657bytesTb4b4b4) Tff7b72-Tff7b72> Tffa657bytesTb4b4b4:
T8b949e"""Return the digest produced by esp_partition_get_sha256() for an app image."""
Tff7b72if Tffa657lenTb4b4b4(Te6edf3imageTb4b4b4) Tff7b72< Te6edf3ESP_IMAGE_HEADER_SIZETb4b4b4:
Tff7b72raise Tf85149ValueErrorTb4b4b4(Ta5d6ff"Ta5d6ffESP application image is shorter than its headerTa5d6ff"Tb4b4b4)
Tff7b72if Te6edf3imageTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72!= Te6edf3ESP_IMAGE_MAGICTb4b4b4:
Tff7b72raise Tf85149ValueErrorTb4b4b4(Ta5d6ff"Ta5d6fffirmware is not an ESP application imageTa5d6ff"Tb4b4b4)
Te6edf3hash_appended Tff7b72= Te6edf3imageTb4b4b4[Te6edf3ESP_IMAGE_HASH_APPENDED_OFFSETTb4b4b4] Tff7b72== T79c0ff1
Tff7b72if Tff7b72not Te6edf3hash_appendedTb4b4b4:
Tff7b72return Te6edf3hashlibTff7b72.Td2a8ffsha256Tb4b4b4(Te6edf3imageTb4b4b4)Tff7b72.Td2a8ffdigestTb4b4b4(Tb4b4b4)
Tff7b72if Tffa657lenTb4b4b4(Te6edf3imageTb4b4b4) Tff7b72< Te6edf3ESP_IMAGE_HEADER_SIZE Tff7b72+ Te6edf3SHA256_SIZETb4b4b4:
Tff7b72raise Tf85149ValueErrorTb4b4b4(Ta5d6ff"Ta5d6ffESP application image is missing its appended SHA-256Ta5d6ff"Tb4b4b4)
Te6edf3content Tff7b72= Te6edf3imageTb4b4b4[Tb4b4b4:Tff7b72-Te6edf3SHA256_SIZETb4b4b4]
Te6edf3appended_hash Tff7b72= Te6edf3imageTb4b4b4[Tff7b72-Te6edf3SHA256_SIZETb4b4b4:Tb4b4b4]
Te6edf3calculated_hash Tff7b72= Te6edf3hashlibTff7b72.Td2a8ffsha256Tb4b4b4(Te6edf3contentTb4b4b4)Tff7b72.Td2a8ffdigestTb4b4b4(Tb4b4b4)
Tff7b72if Te6edf3calculated_hash Tff7b72!= Te6edf3appended_hashTb4b4b4:
Tff7b72raise Tf85149ValueErrorTb4b4b4(Ta5d6ff"Ta5d6ffESP application image has an invalid appended SHA-256Ta5d6ff"Tb4b4b4)
Tff7b72return Te6edf3appended_hash
Tff7b72def Td2a8fffirmware_hash_kiss_frameTb4b4b4(Te6edf3firmware_hashTb4b4b4: Tffa657bytesTb4b4b4) Tff7b72-Tff7b72> Tffa657bytesTb4b4b4:
Tff7b72if Tffa657lenTb4b4b4(Te6edf3firmware_hashTb4b4b4) Tff7b72!= Te6edf3SHA256_SIZETb4b4b4:
Tff7b72raise Tf85149ValueErrorTb4b4b4(Ta5d6ff"Ta5d6fffirmware hash must be exactly 32 bytesTa5d6ff"Tb4b4b4)
Te6edf3escaped_hash Tff7b72= Te6edf3firmware_hashTff7b72.Td2a8ffreplaceTb4b4b4(
Tffa657bytesTb4b4b4(Tb4b4b4[Te6edf3KISS_FESCTb4b4b4]Tb4b4b4)Tb4b4b4, Tffa657bytesTb4b4b4(Tb4b4b4[Te6edf3KISS_FESCTb4b4b4, Te6edf3KISS_TFESCTb4b4b4]Tb4b4b4)
Tb4b4b4)Tff7b72.Td2a8ffreplaceTb4b4b4(
Tffa657bytesTb4b4b4(Tb4b4b4[Te6edf3KISS_FENDTb4b4b4]Tb4b4b4)Tb4b4b4, Tffa657bytesTb4b4b4(Tb4b4b4[Te6edf3KISS_FESCTb4b4b4, Te6edf3KISS_TFENDTb4b4b4]Tb4b4b4)
Tb4b4b4)
Tff7b72return Tffa657bytesTb4b4b4(Tb4b4b4[Te6edf3KISS_FENDTb4b4b4, Te6edf3KISS_CMD_FIRMWARE_HASHTb4b4b4]Tb4b4b4) Tff7b72+ Te6edf3escaped_hash Tff7b72+ Tffa657bytesTb4b4b4(Tb4b4b4[Te6edf3KISS_FENDTb4b4b4]Tb4b4b4)
Served by rngit 1.5.2 - Generated in 0.01s